A webserver is a server that receives an HTTP (Hyper-Text Transfer Protocol) request from a client, i.e., an entity requesting a worldwide web (“web”) service, and provides a response to the HTTP request, i.e., content such as a webpage, having received from a web application server (WAS), to the client. In addition, the WAS refers to a software engine which receives the request of the client through HTTP from the webserver over the network and responds to the request or hardware including the software engine.
In general, under an environment in which webservers and WAS's are provided, in order to connect the webservers and the WAS's, configurations of the webservers and those of the WAS's must be determined in advance and then be set.
The most common method for such connections is a method of making TCP connections between webservers and WAS's in a proxy way, delivering an HTTP request from one of the webservers to one of the WAS's by using the TCP connections, processing a response to the request. For the connections, as stated above, as the webservers must make the TCP connections with the WAS's, the webservers must know information on the WAS's. In this method, when there occurs any change in at least part of the webservers or the WAS's (e.g., addition of a new WAS or change in a state of any of the existing WAS's), it was necessary to change information on setting. However, it is inconvenient because this requires the existing webservers or the existing WAS's to be restarted to change the information on setting.
To solve the problem, a method of dynamically configuring the webservers or the WAS's was proposed in consideration of whether the number of requests is large or not under a circumstance such as a cloud environment. According to the method, an elastic load balancer (ELB) is installed between the webservers and the WAS's to support the dynamic configuration of the webservers and the WAS's in the cloud environment.
In this method, when a specific webserver makes a TCP connection with the ELB irrespective of information on the WAS's and delivers a request to the ELB, the ELB makes a TCP connection with a specific WAS among the dynamically changed WAS's and delivers the request to the specific WAS. Accordingly, a newly-added webserver can be connected with the WAS's if the newly-added webserver knows only information on the ELB.
But this method causes a problem of passing through an additional network hop because it requires to install an additional device for operating the ELB between webservers and WAS's. In addition, it has additional problem of doubling the TCP connections compared to the existing connections. Further, it has still another problem of making the webservers have only a proxy role simply as a delivery function while throwing away an advantage of the webservers, e.g., an advantage of sessions-based scheduling, due to a shift of the responsibility to schedule the WAS's to the ELB. Besides, it has still yet another problem in that only one ELB may be deluged with many requests as the case may be. Accordingly, serious performance degradation may occur. Further, in order to avoid such serious performance degradation, another ELB may be required to be added.
Accordingly, to solve such problems, a new connection technology capable of managing a dynamically changing network situation without a separate equipment between the webservers and the WAS's is proposed.